package chapter06;

public class Java02_Exception {
    public static void main(String[] args) {
        // TODO 异常
        /*
        、   异常处理语法

            TODO try: 尝试
            TODO catch：捕获
                 捕捉多个异常的时候，需先捕捉范围小的异常，然后再捕捉范围大的异常
            TODO finally：最终

            try{
                可能会出现异常的代码
                如果出现异常，JVM会将异常进行封装，形成一个具体的异常并将其抛出
                所有的异常对象都可以被抛出
            } catch( 抛出的异常对象 对象引用) {
                异常解决方案
            } catch() {
            } finally {
                最终要执行的代码逻辑
            }
         */
        int i = 0;
        //int j = 10 / i;
        int j = 0;

        //System.out.println(j); 报错：java.lang.ArithmeticException: / by zero
        try {
            j = 10 / i;
        } catch(ArithmeticException e){
            e.getMessage(); // 错误消息
            e.getCause();   // 错误原因
            e.printStackTrace();
        } finally {
            System.out.println("最终执行的代码");
        }
    }
}